function [singlef_mu, singlem_mu, single_mu] = updatesingle(Lini_grid_norep, Uf_grid, Um_grid, U_f0, U_m0, x, data_f, data_m, n_g)

for g=1:n_g
Uf_x(g) = interpn(Lini_grid_norep, Uf_grid(g,:), x(g),'linear'); 
Um_x(g) = interpn(Lini_grid_norep, Um_grid(g,:), x(g),'linear');
end

U_ftotx(1)=exp(Uf_x(1))+exp(Uf_x(2))+exp(Uf_x(3))+exp(U_f0(1));
U_ftotx(2)=U_ftotx(1);
U_ftotx(3)=U_ftotx(1);

U_ftotx(4)=exp(Uf_x(4))+exp(Uf_x(5))+exp(Uf_x(6))+exp(U_f0(4));
U_ftotx(5)=U_ftotx(4);
U_ftotx(6)=U_ftotx(4);

U_ftotx(7)=exp(Uf_x(7))+exp(Uf_x(8))+exp(Uf_x(9))+exp(U_f0(7));
U_ftotx(8)=U_ftotx(7);
U_ftotx(9)=U_ftotx(7);

U_mtotx(1)=exp(Um_x(1))+exp(Um_x(4))+exp(Um_x(7))+exp(U_m0(1));
U_mtotx(4)=U_mtotx(1);
U_mtotx(7)=U_mtotx(1);

U_mtotx(2)=exp(Um_x(2))+exp(Um_x(5))+exp(Um_x(8))+exp(U_m0(2));
U_mtotx(5)=U_mtotx(2);
U_mtotx(8)=U_mtotx(2);

U_mtotx(3)=exp(Um_x(3))+exp(Um_x(6))+exp(Um_x(9))+exp(U_m0(3));
U_mtotx(6)=U_mtotx(3);
U_mtotx(9)=U_mtotx(3);

for g=1:n_g
singlef_mu(g)=(exp(U_f0(g))/U_ftotx(g))*data_f(g);
singlem_mu(g)=(exp(U_m0(g))/U_mtotx(g))*data_m(g);
end

single_mu=[singlef_mu';singlem_mu']; 
end

